'''
业务层
'''
'''
----商超管理系统（MySQL版）---
使用MySQL保存数据，实现超市日常管理中以下业务。

一、建立以下数据表并填充数据
产品表：products
列名：主键id  编号num  名称name  单价price  折扣discount

订单表：orders
列名：主键id  编号num  货品数量count  金额amount


二、实现以下菜单并实现业务:
1.查看所有商品信息；
2.查找商品（用户输入商品名称，查看价格和折扣）；
3.添加商品（id需要程序生成）；
4.修改商品价格和折扣（根据编号，设置折扣为0-1之间）；
5.删除商品（根据编号）；
6.查看所有订单；
7.删除订单（根据编号）；
8.订单统计（总销量，总销售额）；
9.商品结算（添加订单）。
'''
import orm


# 1，查看商品
def show_products():
    sql = f"""
        select num,name,price,discount from products
    """
    data = orm.read_data(sql)
    if data != ():
        print(f'----编码----名称----价格----折扣----')
        for product in data:
            print(f'{product[0]}\t{product[1]}\t{product[2]}\t{product[3]}')


# 2，查找商品
def get_product():
    num = input('请输入要查询的商品编码：')
    sql = f"""
        select num,name,price,discount from products where num='{num}'
    """
    data = orm.read_data(sql)
    if data != ():
        print(f'----编码----名称----价格----折扣----')
        for product in data:
            print(f'{product[0]}\t{product[1]}\t{product[2]}\t{product[3]}')
    else:
        print('商品不存在，请重新输入')


# 3，添加商品
def add_product():
    num = input('请输入商品编码：')
    name = input('请输入商品名称：')
    price = float(input('请输入商品价格：'))
    discount = float(input('请输入折扣：'))
    sql = f"""
        insert into products values (null, '{num}', '{name}', {price},{discount}) 
        """
    sql1 = f'''
        select num,name,price,discount from products
    '''
    rows = orm.write_data(sql)
    data = orm.read_data(sql1)
    if data != ():
        print(f'----编码----名称----价格----折扣----')
        for product in data:
            print(f'\t{product[0]}\t{product[1]}\t\t{product[2]}\t\t{product[3]}')
    return rows


# 修改价格和折扣

def mod_product():
    num = input('请输入需要修改的编号：')
    price = float(input('请输入商品价格：'))
    discount = float(input('请输入折扣(0-1之间)：'))
    sql = f"""
           update products set price={price},discount={discount} where num='{num}'  
            """
    sql1 = f'''
            select num,name,price,discount from products
        '''
    rows = orm.write_data(sql)
    data = orm.read_data(sql1)
    if data != ():
        print(f'----编码----名称----价格----折扣----')
        for product in data:
            print(f'\t{product[0]}\t{product[1]}\t\t{product[2]}\t\t{product[3]}')
    return rows


# 5.删除商品
def del_product():
    num = input('请输入需要删除的编号：')
    sql = f"""
               delete from products where num='{num}'  
                """
    sql1 = f'''
                select num,name,price,discount from products
            '''
    rows = orm.write_data(sql)
    data = orm.read_data(sql1)
    if data != ():
        print(f'----编码----名称----价格----折扣----')
        for product in data:
            print(f'\t{product[0]}\t{product[1]}\t\t{product[2]}\t\t{product[3]}')
    return rows


# 6.查看所有订单；
def show_orders():
    sql = f"""
            select num,count,amount from orders
        """
    data = orm.read_data(sql)
    if data != ():
        print(f'--------订单------------')
        for orders in data:
            print(f'{orders[0]}\t{orders[1]}\t{orders[2]}')


# 7删除订单
def del_order():
    num = input('请输入需要删除的编号：')
    sql = f"""
                delete from products where num='{num}'  
                 """
    sql1 = f'''
                 select num,name,price,discount from orders
             '''
    rows = orm.write_data(sql)
    data = orm.read_data(sql1)
    if data != ():
        print(f'--------订单------------')
        for orders in data:
            print(f'{orders[0]}\t{orders[1]}\t{orders[2]}')


# 8,订单统计（总销量，总销售额）；
def count_orders():
    sql = f"""
                    select sum(count), sum(amount) from orders  
                     """
    data = orm.read_data(sql)
    print(f"总销量：{data[0][0]}，总销售额：{data[0][1]}")


# 9.商品结算（添加订单）
def add_order():
    num = input("请输入货品编号：")
    count = input("请输入货品数量：")
    amount = input("请输入货品金额：")
    sql = f"insert into orders (num,count,amount) values ('{num}', '{count}', '{amount}')"
    rows = orm.write_data(sql)
    if rows > 0:
        print('添加订单成功')
    else:
        print('添加订单失败')


if __name__ == '__main__':
    # 测试一下
    # show_products()
    # get_product()
    #   add_product()
    # mod_product()
    # del_product()
    # show_orders()
    # count_orders()
    add_order()
